package com.sophialex.health.record.common.util;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Cursor;
import org.eclipse.swt.graphics.Font;

import com.sophialex.health.common.platform.SuperContext;
import com.sophialex.health.system.frame.resource.RcpResourceManager;

public class SystemUtil {
	// 基本背景色
	public final static Color Basic_Back_Color = RcpResourceManager.getColor(
			238, 241, 245);
	public static int Table_Height = 24;// 行高
	public static Font tabFont = SuperContext.f10;// 字体大小 9-12

	public static Color Table_Background = RcpResourceManager
			.getColor(SWT.COLOR_WHITE);// 表格背景色
	public static Color Table_color = RcpResourceManager
			.getColor(SWT.COLOR_BLACK);;// 表格字体颜色
	public static Color RemarkTable_color = RcpResourceManager
			.getColor(SWT.COLOR_BLUE);// 表格下面的拼节表格的字体颜色

	public static Color Table_Groupcolor = RcpResourceManager
			.getColor(SWT.COLOR_BLACK);// 同组字体颜色
	public static Color Table_GroupBackground = RcpResourceManager
			.getColor("240,243,248");// 同组背景颜色 //$NON-NLS-1$

	public static Font ChargeInput_FONT = SuperContext.f10;// 计价收费界面字体颜色
	public static Color ChargePayMoney_Background = RcpResourceManager
			.getColor("0, 128, 128");// 预付背景颜色 //$NON-NLS-1$
	public static Color ChargePayMoney_Foreground = RcpResourceManager
			.getColor("255, 255, 0");// 预付前景颜色 //$NON-NLS-1$
	public static Color ChargeInvoiceNumber_Foreground = RcpResourceManager
			.getColor(SWT.COLOR_BLUE);// 发票号前景颜色

	public final static Cursor cursor = RcpResourceManager
			.getCursor(SWT.CURSOR_WAIT);

	public final static Long FY_CK = 1L; // 发药窗口
	public final static Long DY_CK = 2L;// 打印窗口

	/*************** 库房性质 *******************/
	public final static Long MZ = 1L; // 门诊
	public final static Long ZY = 2L;// 住院
	public final static Long ZH = 3L;// 综合

	/**
	 * 药品性质
	 */
	public final static Long XY = 1L; // 西药
	public final static Long ZCY = 2L;// 中草药
	public final static Long ZHCY = 3L;// 中成药
	public final static Long QTY = 4L;// 其他药
//
//	public static TkfUserInfo curKf = null;// 当前登录库房
	public static Long CK_XZ = null;// 当前登录窗口性质

	/*********** 结账状态 ***********/
	public final static Long WJZ = 0L; // 未结
	public final static Long YJZ = 1L;// 已结账

	/** 入库方式 ****************/
	public final static Long ZKRK = 1101L;// 折扣入库
	public final static Long SJRK = 1102L;// 实价入库
	public final static Long BLRK = 1103L;// 比例入库
	public final static Long ZBRK = 1104L;// 招标入库
	public final static Long WLRK = 1105L;// 网络入库
	public final static Long SGRK = 1106L;// 手工入库
	public final static Long KSLY = 130L;// 科室领药
	public final static Long WSTH = 151L;// 外售退回
	public final static Long CERK = 1107L;// 外售退回
	/********* 出库方式 *************/
	public final static Long SJTH = 1111L;// 实价退回
	public final static Long ZKTH = 1112L;// 折扣退回
	public final static Long BLTH = 1113L;// 比例退回
	public final static Long ZBTH = 1114L;// 招标退回
	public final static Long SGTH = 1116L;// 手工退回
	public final static Long KSTY = 131L;// 科室退药/出库退回
	public final static Long WS = 150L;// 外售
	public final static Long YPSH = 17L;// 药品损耗
	public final static Long THGYS = 111L;// 退回供应商
	public final static Long YPDB = 7L; // 药品调拨
	
	public final static Long ZR = 21L;
	public final static Long ZC = 22L;

	public final static Long RK = 110L;// 入库
	public final static Long CK = 130L;// 出库
	public final static Long RK_TH = 111L;// 入库退回
	public final static Long CK_TH = 131L;// 出库退回

	public static boolean Zbgs = false; // 招标公式

	/***************** 领药类型 ***************/
	public final static String LY_C = "C";// 常用药品 //$NON-NLS-1$
	public final static String LY_D = "D";// 大输液 //$NON-NLS-1$
	public final static String LY_S = "S";// 手工出库 //$NON-NLS-1$
	public final static String LY_T = "T";// 特殊 //$NON-NLS-1$
	public final static String LY_Y = "Y";// 营养品 //$NON-NLS-1$
	/***************** 部门类别 *******************/
	public final static String BM_SK = "3";// 社康 //$NON-NLS-1$

	/**
	 * 获取当前登录库房可存放药品的性质
	 * 
	 * @return
	 */
	public static String getTkfxz() {
		String kfxz = ""; //$NON-NLS-1$
//		if (curKf != null) {
//			if (new Long(1).equals(curKf.getFcfxy())) {
//				kfxz += "," + XY; //$NON-NLS-1$
//			}
//			if (new Long(1).equals(curKf.getFcfzhcy())) {
//				kfxz += "," + ZHCY; //$NON-NLS-1$
//			}
//			if (new Long(1).equals(curKf.getFcfzcy())) {
//				kfxz += "," + ZCY; //$NON-NLS-1$
//			}
//			if (new Long(1).equals(curKf.getFcfqty())) {
//				kfxz += "," + QTY; //$NON-NLS-1$
//			}
//		}
		return kfxz.length() > 1 ? kfxz.substring(1) : kfxz;
	}

//	/**
//	 * 根据库房编号获取库房性质
//	 * 
//	 * @param fkfbh
//	 * @return
//	 */
//	public static Tkfzl getTkfzl(String fkfbh) {
//		if (Assert.isNull(fkfbh))
//			return null;
//		List<Tkfzl> list;
//		try {
//			list = YfLocalCache.getAllKfzl();
//			if (list != null && list.size() > 0) {
//				for (Tkfzl zl : list) {
//					if (zl.getFkfbh().equals(fkfbh))
//						return zl;
//				}
//			}
//		} catch (BusinessException e) {
//			e.printStackTrace();
//		}
//		return null;
//
//	}
//
//	/**
//	 * 获取库房性质
//	 * 
//	 * @param kf
//	 * @return
//	 */
//	public static String getTkfxzBykf(Tkfzl kf) {
//		String kfxz = ""; //$NON-NLS-1$
//		if (kf != null) {
//			if (new Long(1).equals(kf.getFcfxy())) {
//				kfxz += "," + XY; //$NON-NLS-1$
//			}
//			if (new Long(1).equals(kf.getFcfzhcy())) {
//				kfxz += "," + ZHCY; //$NON-NLS-1$
//			}
//			if (new Long(1).equals(kf.getFcfzcy())) {
//				kfxz += "," + ZCY; //$NON-NLS-1$
//			}
//			if (new Long(1).equals(kf.getFcfqty())) {
//				kfxz += "," + QTY; //$NON-NLS-1$
//			}
//		} else {
//			kfxz = "," + XY + "," + ZHCY + "," + ZCY + "," + QTY; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
//		}
//		return kfxz.length() > 1 ? kfxz.substring(1) : kfxz;
//	}
//
//	/**
//	 * 获取药品
//	 * 
//	 * @param code
//	 * @return
//	 */
//	public static TdrugDic getDrugDic(String kfxz, String kfbh, String code) {
//		try {
//			List<TdrugDic> list = DataSource.comService.getDrugCode(kfxz, kfbh,
//					code);
//			if (list != null && list.size() > 0) {
//				if (list.size() == 1) {
//					TdrugDic dic = list.get(0);
//					YfLocalCache.drugMap.put(dic.getFmcode(), dic);
//					return dic;
//				} else {
//					DrugdicDlg dlg = new DrugdicDlg(new Shell(), list, code);
//					TdrugDic dic = (TdrugDic) dlg.open();
//					if (dic != null) {
//						YfLocalCache.drugMap.put(dic.getFmcode(), dic);
//					}
//					return dic;
//				}
//			}
//		} catch (BusinessException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//	
//	/**
//	 * 获取药品
//	 * 
//	 * @param code
//	 * @return
//	 */
//	public static TdrugDic getDrugDic(String kfxz, String kfbh, String code,String flybm) {
//		try {
//			List<TdrugDic> list = DataSource.comService.getDrugCode(kfxz, kfbh,
//					code,flybm);
//			if (list != null && list.size() > 0) {
//				if (list.size() == 1) {
//					TdrugDic dic = list.get(0);
//					YfLocalCache.drugMap.put(dic.getFmcode(), dic);
//					return dic;
//				} else {
//					DrugdicDlg dlg = new DrugdicDlg(new Shell(), list, code);
//					TdrugDic dic = (TdrugDic) dlg.open();
//					if (dic != null) {
//						YfLocalCache.drugMap.put(dic.getFmcode(), dic);
//					}
//					return dic;
//				}
//			}
//		} catch (BusinessException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//	
//	/**
//	 * 获取厂家
//	 * 
//	 * @param filterStr
//	 * @return
//	 */
//	public static Tgys getTgys(String filterStr) {
//
//		try {
//			List<Tgys> gysList = YfLocalCache.gyrList;
//			if (gysList != null && gysList.size() > 0) {
//				if (gysList.size() == 1) {
//					return gysList.get(0);
//				} else {
//					GysSelectDialog dlg = new GysSelectDialog(new Shell(),
//							gysList, filterStr);
//					Tgys gys = (Tgys) dlg.open();
//					return gys;
//				}
//			}
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//
//	/**
//	 * 获取药品
//	 * 
//	 * @param code
//	 * @return
//	 */
//	public static TlyDrugCode getWebAppDrugDic(String fsjkfbh, String fxjkfbh,
//			String kfxz, String code) {
//		try {
//			List<TlyDrugCode> list = DataSource.comService.getLyDurgCode(
//					fsjkfbh, fxjkfbh, kfxz, code, "1", null, null); //$NON-NLS-1$
//			if (list != null && list.size() > 0) {
//				if (list.size() == 1) {
//					TlyDrugCode drug = list.get(0);
//					return drug;
//				} else {
//					WebAppDrugDlg dlg = new WebAppDrugDlg(new Shell(), list);
//					TlyDrugCode drug = (TlyDrugCode) dlg.open();
//					return drug;
//				}
//			}
//		} catch (BusinessException e) {
//			e.printStackTrace();
//		}
//		return null;
//	}
//
//	/**
//	 * 初始化库房combo
//	 * 
//	 * @param fkfjb
//	 * @param combo
//	 */
//	public static void initKfCombo(Long fkfjb, CCombo combo)
//			throws BusinessException {
//		if (combo == null || combo.isDisposed())
//			return;
//		List<Tkfzl> list;
//		list = YfLocalCache.getUserKfzl();
//		if (list != null && list.size() > 0) {
//			for (Tkfzl kf : list) {
//				if (kf.getFkfjb().equals(fkfjb)) {
//					combo.add(kf.getFmc());
//					combo.setData(kf.getFmc(), kf);
//				}
//			}
//		}
//		if (combo.getItemCount() > 0) {
//			Tkfzl zl;
//			int j = 0;
//			for (int i = 0; i < combo.getItemCount(); i++) {
//				String item = combo.getItem(i);
//				zl = (Tkfzl) combo.getData(item);
//				if (zl.getFkfbh().equals(curKf.getFkfbh())) {
//					j = i;
//					break;
//				}
//			}
//
//			combo.select(j);
//		}
//	}
//
//	/**
//	 * 初始化库房
//	 * 
//	 * @param fkfjb
//	 * @param combo
//	 * @throws BusinessException
//	 */
//	public static void initKfCombo(Long fkfjb, Combo combo)
//			throws BusinessException {
//		if (combo == null || combo.isDisposed())
//			return;
//		List<Tkfzl> list;
//		list = YfLocalCache.getAllKfzl();
//		if (list != null && list.size() > 0) {
//			for (Tkfzl kf : list) {
//				if (kf.getFkfjb().equals(fkfjb)) {
//					combo.add(kf.getFmc());
//					combo.setData(kf.getFmc(), kf);
//				}
//			}
//		}
//		if (combo.getItemCount() > 0) {
//			Tkfzl zl;
//			int j = 0;
//			for (int i = 0; i < combo.getItemCount(); i++) {
//				String item = combo.getItem(i);
//				zl = (Tkfzl) combo.getData(item);
//				if (zl.getFkfbh().equals(curKf.getFkfbh())) {
//					j = i;
//					break;
//				}
//			}
//
//			combo.select(j);
//		}
//	}
//
//	/**
//	 * 根据编号获取部门
//	 * 
//	 * @param code
//	 * @return
//	 * @throws BusinessException
//	 */
//	public static Tbm getBm(String code) throws BusinessException {
//		List<Tbm> list = YfLocalCache.getBm();
//		if (list != null && list.size() > 0) {
//			for (Tbm bm : list) {
//				if (bm.getFbh().equals(code)) {
//					return bm;
//				}
//			}
//		}
//		return null;
//	}
//
//	/**
//	 * 根据编号获取部门
//	 * 
//	 * @param code
//	 * @return
//	 * @throws BusinessException
//	 */
//	public static Tbm getBmByfkfbh(String fkfbh) throws BusinessException {
//		List<Tbm> list = YfLocalCache.getBm();
//		if (list != null && list.size() > 0) {
//			for (Tbm bm : list) {
//				if (bm.getFkfbh() != null && bm.getFkfbh().equals(fkfbh)) {
//					return bm;
//				}
//			}
//		}
//		return null;
//	}
//
//	/**
//	 * 根据编号获取供应商
//	 * 
//	 * @param code
//	 * @return
//	 * @throws BusinessException
//	 */
//	public static Tgys getGys(String code) throws BusinessException {
//		List<Tgys> list = YfLocalCache.getGyrByKfJb();
//		if (list != null && list.size() > 0) {
//			for (Tgys gys : list) {
//				if (gys.getId().getFbh().equals(code)) {
//					return gys;
//				}
//			}
//		}
//		return null;
//	}
//
//	/**
//	 * 获取科室
//	 * 
//	 * @param code
//	 * @return
//	 * @throws BusinessException
//	 */
//	public static Tkssz getTks(String code) throws BusinessException {
//		List<Tkssz> list = YfLocalCache.getKssz();
//		if (list != null && list.size() > 0) {
//			for (Tkssz ks : list) {
//				if (ks.getFkh().equals(code)) {
//					return ks;
//				}
//			}
//		}
//		return null;
//	}
//
//	/**
//	 * 根据编号获取客户资料
//	 * 
//	 * @param code
//	 * @return
//	 * @throws BusinessException
//	 */
//	public static Tkhzl getKh(String code) throws BusinessException {
//		List<Tkhzl> list = YfLocalCache.getTkhzl();
//		if (list != null && list.size() > 0) {
//			for (Tkhzl kh : list) {
//				if (kh.getFbh().equals(code)) {
//					return kh;
//				}
//			}
//		}
//		return null;
//	}
//
//	// 获取发药人
//	public static void initFyr(Combo combo_kf, Combo combo_fyr) {
//
//		List<TUserByGh> list = null;
//		String fkfbh;
//		String fkfjb = SystemUtil.curKf.getFkfjb().toString();
//		// 获取库房编号
//		String kfmc = combo_kf.getText();
//		TkfInfo kfzl = (TkfInfo) combo_kf.getData(kfmc);
//		if (!Assert.isNull(kfzl)) {
//			fkfbh = kfzl.getFkfbh();
//		} else {
//			fkfbh = null;
//		}
//		try {
//			combo_fyr.removeAll();
//			list = DataSource.zyfyService.getYpglUserByGh(fkfbh, fkfjb);
//			// 设置发药人Combo
//			combo_fyr.add(Messages.SystemUtil_24);
//			if (list != null && list.size() > 0) {
//				for (TUserByGh user : list) {
//					if (!Assert.isNull(user)) {
//						String name = user.getFname();
//						combo_fyr.add(name);
//						combo_fyr.setData(name, user);
//					}
//				}
//			}
//
//			combo_fyr.setVisibleItemCount(15);
//			combo_fyr.select(0);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//	}
//
//	// 药品用法
//	public static void initDrugUsage(Combo combo_usage) {
//		List<Tdrugusage> list = null;
//		combo_usage.add(Messages.SystemUtil_25);
//		try {
//			list = DataSource.comService.getDurgUsages(null);
//			if (list != null && list.size() > 0) {
//				for (Tdrugusage usage : list) {
//					String usageName = usage.getFusagename();
//					combo_usage.add(usageName);
//					combo_usage.setData(usageName, usage);
//				}
//			}
//			combo_usage.setVisibleItemCount(15);
//			combo_usage.select(0);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//	}
//
//	/**
//	 * 获取药品进销比例
//	 * 
//	 * @param type
//	 *            1,有折扣 ,2，无折扣
//	 * @param mType
//	 *            1,西药，2,中草药，3,中成药 ,4,其他药
//	 * @return
//	 */
//	public static String getBl(int type, Long mType) {
//		String bl = ParamUtil.getParamValue(ParamUtil.QS_XY_ZK_BL);
//		if (type == 1) {
//			if (mType.equals(XY)) {
//				bl = ParamUtil.getParamValue(ParamUtil.QS_XY_ZK_BL);
//			} else if (mType.equals(ZCY)) {
//				bl = ParamUtil.getParamValue(ParamUtil.QS_ZCY_ZK_BL);
//			} else if (mType.equals(ZHCY)) {
//				bl = ParamUtil.getParamValue(ParamUtil.QS_ZCHY_ZK_BL);
//			} else {
//				bl = ParamUtil.getParamValue(ParamUtil.QS_QT_ZK_BL);
//			}
//		} else {
//			if (mType.equals(XY)) {
//				bl = ParamUtil.getParamValue(ParamUtil.QS_XY_BL);
//			} else if (mType.equals(ZCY)) {
//				bl = ParamUtil.getParamValue(ParamUtil.QS_ZCY_BL);
//			} else if (mType.equals(ZHCY)) {
//				bl = ParamUtil.getParamValue(ParamUtil.QS_ZCHY_BL);
//			} else {
//				bl = ParamUtil.getParamValue(ParamUtil.QS_QT_BL);
//			}
//		}
//		return bl;
//	}
//
//	// 获取收费人
//	public static void initSfr(Combo combo_fyr) {
//
//		List<TUserByGh> list = null;
//		try {
//			combo_fyr.removeAll();
//			list = DataSource.zyfyService.getYpglSfr();
//			// 设置发药人Combo
//			combo_fyr.add(Messages.SystemUtil_26);
//			if (list != null && list.size() > 0) {
//				for (TUserByGh user : list) {
//					if (!Assert.isNull(user)) {
//						String name = user.getFname();
//						combo_fyr.add(name);
//						combo_fyr.setData(name, user);
//					}
//				}
//			}
//
//			combo_fyr.setVisibleItemCount(15);
//			combo_fyr.select(0);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//	}
//
//	/**
//	 * 科室性质
//	 * 
//	 * @param fkflb
//	 * @return
//	 */
//	public static String getKsXz(Long fkflb) {
//		String fxz = ""; //$NON-NLS-1$
//		if (Assert.isNull(fkflb))
//			return fxz;
//		if (MZ.equals(fkflb))
//			fxz = "'" + MZ + "','" + ZH + "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
//		if (ZY.equals(fkflb))
//			fxz = "'" + ZY + "','" + ZH + "'"; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
//		if (ZH.equals(fkflb))
//			fxz = Messages.SystemUtil_34 + MZ + "','" + ZY + "','" + ZH + "'"; //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
//		return fxz;
//	}
//
//	// 获取发药医生列表 ,过滤作废医生号 0 正常,1作废
//	public static void initDoctors(Combo combo_doctor) {
//		List<DoctorPO> list = null;
//		try {
//			combo_doctor.add(Messages.SystemUtil_38);
//			// 包含作废的医生
//			list = DataSource.comService.getDoctors(null, null);
//			if (list != null && list.size() > 0) {
//				for (DoctorPO doc : list) {
//					String fname = doc.getFname();
//					// 过滤作废医生
//					if ("0".equals(doc.getFzf())) { //$NON-NLS-1$
//						combo_doctor.add(fname);
//						combo_doctor.setData(fname, doc);
//					}
//				}
//			}
//			combo_doctor.setVisibleItemCount(15);
//			combo_doctor.select(0);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//	}
//
//	public static boolean isDrugs(String fkfbh, String code) {
//		if (Assert.isNull(code)) {
//			DialogManager.invokeWarnDlg(Messages.SystemUtil_40);
//			return false;
//		}
//		int i = 0;
//		try {
//			i = DataSource.comService.isDrugs(fkfbh, code);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//		if (i == 0) {
//			DialogManager.invokeWarnDlg(Messages.SystemUtil_41 + code + Messages.SystemUtil_42);
//			return false;
//		}
//		return true;
//	}
//
//	public static int getJbScale(String drugcode) {
//		int fscale = 1;
//		return fscale;
//	}
//
//	// 获取列别设置
//	public static void initFlbsz(Combo combo_lbsz) {
//		List<Tlbsz> list = null;
//		try {
//			combo_lbsz.add(Messages.SystemUtil_43);
//			list = DataSource.comService.getLbsz();
//			if (list != null && list.size() > 0) {
//				for (Tlbsz lb : list) {
//					String flb = lb.getFlb();
//					combo_lbsz.add(flb);
//					combo_lbsz.setData(flb, lb);
//				}
//			}
//			combo_lbsz.setVisibleItemCount(10);
//			combo_lbsz.select(0);
//		} catch (Exception e) {
//			e.printStackTrace();
//		}
//	}
}
